package com.suray.rgv;

import com.suray.basic.wcs.path.core.Node;
import com.suray.rgv.data.Rgv60InfoData;

import java.io.IOException;
import java.util.List;
import java.util.Map;

/**
 * 两栖车功能接口，继承RgvInterface，有小车的基本功能接口以及两栖车的特殊功能接口
 */
public interface Rgv60Interface extends RgvInterface {

    /**
     * 切换地图
     * @param layer
     */
    public void changeMap(int layer) throws IOException;

    /**
     * 设置当前所在的层
     */
    Integer getCurrentFloor();

    /**
     * 托盘上方是否有货
     * @return
     */
    Boolean hasPallet();

    /**
     * 获取小车信息
     * @return
     */
    Rgv60InfoData getRgv60InfoData();

    /**
     * 生成任务
     * @param taskId
     * @param nodeList
     */
    void generalTask(Integer taskId, List<Node> nodeList);

    /**
     * 修改控制权限
     * @param hasAuthor
     *
     */
    void changeAuthor(boolean hasAuthor) throws IOException;

    /**
     * 是否有控制权
     * @return
     */
    boolean hasAuthor();

    /**
     * 重定位
     */
    void resetPosition() throws IOException;
}
